package com.tiny.tinyweb.core.aop;

import java.lang.reflect.Method;

import org.springframework.aop.MethodBeforeAdvice;

import com.tiny.tinyweb.core.dao.ds.DataSourceSelector;

/**
 * 决定数据源的前置通知类，针对指定切点决定当前要使用的数据源。
 *
 * @author wxiaobin
 */
public class ResolveDataSourceAdvice implements MethodBeforeAdvice {
    /**
     * 当前要使用的数据源名称。
     */
    private String resolvedDataSource;

    /**
     * 设置当前要使用的数据源名称的值。
     *
     * @param resolvedDataSource 当前要使用的数据源名称的新值
     */
    public void setResolvedDataSource(String resolvedDataSource) {
        this.resolvedDataSource = resolvedDataSource;
    }

    /**
     * 指定切点的前置通知方法，决定当前要使用的数据源。
     */
    @Override
    public void before(Method method, Object[] args, Object obj) {
        DataSourceSelector.setResolvedDataSource(this.resolvedDataSource);
    }
}
